# 프로젝트 더 디벨롭하기

# 1. Logging은 어떻게 할까?

  • 에러 뿐만 아니라 디버깅하기 위한 로그도 충분히 심어둔다.
  • 내장 모듈 혹은 외부 모듈을 활용하여 로그의 레벨을 설정하며, 환경(dev, prod)에 맞게 로그를 분리한다
  • 로그를 저장할 수 있는 저장소를 둔다 ex. elk stack
  • 에러의 정도에 따라 이를 모니터링 서버에 알릴 수 있어야 한다 ex. sentry

# 2. 예외 처리는 어떻게 할까?

  • 내장된 Exception을 잘 활용하고, 규칙에 따른 Custom Exception도 활용한다.
  • Exception을 catch한 후 의미 있는 처리를 해줘야 한다.

# 3. 테스트 디벨롭하기

  • 테스트 커버리지 도구를 활용해 정량적으로 테스트 커버리지 확인하기
  • Happy Path가 아닌 UnHappy Path Test를 짜자
  • 외부 의존성과 비즈니스 로직을 잘 분리하자
  • Docker & Docker Compose를 활용해 테스트 환경을 격리해서 테스트해보자.

# 4. 프로젝트 규모가 커질 수록 신경써야 할 것

  • 객체의 응집도를 높이고 결합도를 줄인다.
  • 공통 컴포넌트들을 잘 활용하여 코드의 복잡도를 낮춘다.
  • 각 레이어의 의존 관계가 꼬이지 않도록 신경써야 한다.
  • 상황에 맞는 디자인 패턴, 아키텍처를 고려하며 순차적으로 리팩토링을 진행하면서 점진적으로 개선한다.
Last Updated: 2/20/2022, 1:51:31 PM

CC-BY-NC-ND-4.0 Licensed | Copyright © 2021-present Grab